From: Takao Fujiwara Date: Wed, 1 Mar 2023 14:42:18 +0000 (+0900) Subject: inputMethod: Keep Capabilite.FOCUS before context.focus_in/focus_out X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~337^2~1^2~24 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=17d9ec5788fb;p=gnome-shell.git inputMethod: Keep Capabilite.FOCUS before context.focus_in/focus_out If context.focus_out() is called *after* context.set_capabilities(0), The FocusOut D-Bus method is ignored because of no FOCUS capability. If context.focus_out() is called *before* context.set_capabilities(0), The 0 capability is set to the next focused context and the FocusIn D-Bus method is ignored because of no FOCUS capability. So context.set_capabilities(0) should not be called. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6415 Part-of: --- diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js index aabd280c8..d944c2978 100644 --- a/js/misc/inputMethod.js +++ b/js/misc/inputMethod.js @@ -188,6 +188,7 @@ export const InputMethod = GObject.registerClass({ vfunc_focus_in(focus) { this._currentFocus = focus; if (this._context) { + this.update(); this._context.focus_in(); this._emitRequestSurrounding(); } @@ -371,7 +372,6 @@ export const InputMethod = GObject.registerClass({ _fullReset() { this._context.set_content_type(0, 0); this._context.set_cursor_location(0, 0, 0, 0); - this._context.set_capabilities(0); this._context.reset(); }